/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package produccion;

import java.text.DecimalFormat;
import java.util.ArrayList;

/**
 *
 * @author Jorge
 */
public class Diptico extends Publicacion implements IRefilado {
    
    
    public Diptico(String titulo, String cliente, Formato formato, Integer tiraje) {
        super(titulo, cliente, formato, tiraje);
    }    
    
    @Override
    public Double calcularPlacas() {
        Double placasInteriores=0.0;
        
        for (InteriorNoCompaginable i : getInterioresNoCompaginables()) {
            placasInteriores += i.calcularPlacas();
        }
        
        return placasInteriores;
    }

    @Override
    public Double calcularTiempoImpresion() {
        Double tiempoInteriores=0.0;
        
        for (int i = 0; i < getInterioresNoCompaginables().size(); i++) {
            tiempoInteriores += getInterioresNoCompaginables().get(i).calcularTiempoImpresion();
        }
        
        return tiempoInteriores;
    }    

    @Override
    public Double calcularTiempoRefilado() {
        return (double) 15 / 60;
    }
    
    public Double calcularTiempoAcabado(){
        return calcularTiempoRefilado();
    }
    
    public Double calcularTiempoProduccion(){
        return calcularTiempoImpresion() + calcularTiempoAcabado();
    }
    
    public static void main(String[] args) {
        DecimalFormat df = new DecimalFormat("#.#####");
        
        Diptico d = new Diptico("DIPTICO","CINFO",Formato.A5,1000);
        InteriorNoCompaginable inte1 = new InteriorNoCompaginable(Color.CUATRO,Color.CUATRO,new Maquina(NMaquina.ROLAND200),new Maquina(NMaquina.ROLAND200));    
        ArrayList<InteriorNoCompaginable> inters = new ArrayList<InteriorNoCompaginable>();
        inters.add(inte1);
        //inters.add(inte2);
        //inters.add(inte3);
        
        inte1.setPub(d);
        //inte2.setPub(l);
        //inte3.InteriorCompaginable);
        d.setInterioresNoCompaginables(inters);
        
        System.out.println("Titulo: " + d.getTitulo());

        
        System.out.println("=====================INTERIORES====================");
        for (int i = 0; i < inters.size(); i++) {
            System.out.println("<<<<<Interior: " + (i+1) + ">>>>>");
            System.out.println("pliegos: " + df.format(d.getInterioresNoCompaginables().get(i).getPub().getTiraje()));
            System.out.println("placas tira: " + df.format(d.getInterioresNoCompaginables().get(i).calcularPlacasTira()));
            System.out.println("placas retira: " + df.format(d.getInterioresNoCompaginables().get(i).calcularPlacasRetira()));
            System.out.println("placas totales: " + df.format(d.getInterioresNoCompaginables().get(i).calcularPlacas()));
            System.out.println("tiempo tira: " + df.format(d.getInterioresNoCompaginables().get(i).calcularTiempoImpresionTira()));
            System.out.println("tiempo retira: " + df.format(d.getInterioresNoCompaginables().get(i).calcularTiempoImpresionRetira()));
            System.out.println("tiempo muerto: " + df.format(d.getInterioresNoCompaginables().get(i).calcularTiempoMuerto()));
            System.out.println("TIEMPO TOTAL INTERIOR "+ (i+1)+ ": " + df.format(d.getInterioresNoCompaginables().get(i).calcularTiempoImpresion()));
            System.out.println("");
        }

        System.out.println("=====================DIPTICO=========================");
        System.out.println("=====Impresión=====");
        System.out.println("Pliegos totales: " + df.format(d.calcularPliegos()));
        System.out.println("Placas totales (interiores): " + df.format(d.calcularPlacas()));
        System.out.println("Tiempo total impresion diptico: " + df.format(d.calcularTiempoImpresion()));

        System.out.println("======Refilado=====");
        System.out.println("Tiempo refilado: " + df.format(d.calcularTiempoRefilado())); 
        
        System.out.println("Tiempo Acabados total: " + df.format(d.calcularTiempoAcabado()));
        
        System.out.println("Tiempo Producción total diptico: " + df.format(d.calcularTiempoProduccion()));        
    }
    
}
